package com.tt.dp.observer.subject;

import com.tt.dp.observer.observer.Observer;

/**
 * 观察者模式中的主题接口
 */
public interface Subject {

    /**
     * 注册观察者
     * @param observer 观察者
     */
    void registerObserver(Observer observer);

    /**
     * 移除观察者
     * @param observer 观察者
     */
    void removeObserver(Observer observer);

    /**
     * 通知观察者
     *
     * 一般在主题状态(数据)变更的时候调用
     */
    void notifyObserver();
}
